package main.java.ERMDE.controllers;

import java.util.List;
import java.util.UUID;

import main.java.ERMDE.controllers.listeners.IRelationshipEntityEventListener;
import main.java.ERMDE.models.Cardinality;
import main.java.ERMDE.models.Entity;
import main.java.ERMDE.models.Interface;
import main.java.ERMDE.views.IRelationshipEntityView;


public interface IRelationshipEntityController {

	public void create();

	public void remove(UUID uuid) throws Exception;

	public List<Interface> getRelationshipEntities();

	public void setRelationshipEntityView(IRelationshipEntityView view);

	void addSuscriber(IRelationshipEntityEventListener listener);

	void modify(UUID uuid, Cardinality card, String role, boolean isStrong)
			throws Exception;

	void add(UUID uuid, Cardinality card, String role, boolean isStrong);

	List<Object[]> getListForModel();

	public Iterable<Entity> getEntities();

	public boolean entitiesAreSameType();

	void updateModel(List<Object[]> list) throws Exception;

	public void setRelatinshipEntities(List<Interface> relationshipEntities);

	boolean isUnary();

}
